Make sure that the value of jisx0208 property is jisx0208 character.
authorKenichi Handa <handa@m17n.org>
Fri, 13 Nov 2009 06:20:52 +0000 (06:20 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 13 Nov 2009 06:20:52 +0000 (06:20 +0000)
lisp/language/japan-util.el

index 96fd8957d20dee1a94bf4a2e5c3b20391609a1e7..e0e226866bc5fa7617a1b84644c1d8767007044c 100644 (file)
@@ -109,10 +109,10 @@ HANKAKU-KATAKANA belongs to `japanese-jisx0201-kana'.")
     (?\e$B!w\e(B ?@)
     ;; cp932-2-byte
     (#x2015 ?-) (#xFF5E ?~) (#xFF0D ?-))
-  "Japanese JISX0208 symbol character table.
+  "Japanese JISX0208 and CP932 symbol character table.
   Each element is of the form (SYMBOL ASCII HANKAKU), where SYMBOL
-belongs to `japanese-jisx0208', ASCII belongs to `ascii', and HANKAKU
-belongs to `japanese-jisx0201-kana'.")
+belongs to `japanese-jisx0208' or `cp932', ASCII belongs to `ascii',
+and HANKAKU belongs to `japanese-jisx0201-kana'.")
 
 ;; Put properties 'jisx0208, 'jisx0201, and 'ascii to each Japanese
 ;; symbol and ASCII characters for conversion among them.
@@ -125,11 +125,13 @@ belongs to `japanese-jisx0201-kana'.")
     (if ascii
        (progn
          (put-char-code-property jisx0208 'ascii ascii)
-         (put-char-code-property ascii 'jisx0208 jisx0208)))
+         (if (encode-char jisx0208 'japanese-jisx0208)
+             (put-char-code-property ascii 'jisx0208 jisx0208))))
     (if jisx0201
        (progn
          (put-char-code-property jisx0208 'jisx0201 jisx0201)
-         (put-char-code-property jisx0201 'jisx0208 jisx0208)))))
+         (if (encode-char jisx0208 'japanese-jisx0208)
+             (put-char-code-property jisx0201 'jisx0208 jisx0208))))))
 
 (defconst japanese-alpha-numeric-table
   '((?\e$B#0\e(B . ?0) (?\e$B#1\e(B . ?1) (?\e$B#2\e(B . ?2) (?\e$B#3\e(B . ?3) (?\e$B#4\e(B . ?4)